package com.baikeyang.service.role;

import com.baikeyang.common.bean.ResponseResult;
import com.baikeyang.common.model.Role;
import com.baikeyang.common.model.RoleResource;
import com.baikeyang.service.base.ISuperService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import java.util.Set;

/**
 * Created by lenovo on 2018/7/20.
 */
public interface IRoleService extends ISuperService<Role> {

    /**
     * 获取资源列表（分页）
     * @param pageParam
     * @return
     */
    IPage<Role> getRolePage(Page<Role> pageParam);

    /**
     * 保存资源
     * @param role
     * @return
     */
    ResponseResult saveRole(Role role);

    /**
     * 更新资源
     * @param role
     * @return
     */
    ResponseResult update(Role role);

    /**
     * 删除资源
     * @param id
     * @return
     */
    ResponseResult delete(Integer id);

    /**
     * 删除资源（多个）
     * @param ids
     * @return
     */
    ResponseResult delete(String ids);

    /**
     * 保存角色的授权信息
     * @param roleResource
     * @return
     */
    ResponseResult saveRoleResource(RoleResource roleResource);

    /**
     * 获取全部的角色列表
     * @return
     */
    ResponseResult getAllRoles();

    /**
     * 根据角色名称获取资源信息（ID）
     * @param roles
     * @return
     */
    Set<String> getResourceByRoleIds(Set<String> roles);

    /**
     * 根据角色ID获取角色资源
     * @param id
     * @return
     */
    ResponseResult getResourceByRoleId(Integer id);
}
